HIV infected cells

HIV infected cells were identified by mapping transcriptome to HIV references (HXB2, Autologous, and Clade B) and ATAC-seq profiles to HIV references (HXB2, Autologous). A subset of reads were individually blasted to confirm they do map specifically to HIV, and then cells were annotated. A minimum of two reads was required to declare something HIV infected. See 20230626AnnotateHIV_2.R for exact processing.

HIV infected cells cluster membership and UMAPs (Fig A - B)

results$HIV_type<-case_when(results$HIV_reads_ATAC>1 & results$HIV_reads_RNA>1 ~"HIV RNA+ and HIV DNA+",
                            results$HIV_reads_ATAC>1 ~ "HIV DNA+", results$HIV_reads_RNA>1 ~ "HIV RNA+ and HIV DNA+", 
                            T ~ "HIV not detected")
results$merged_clusters<-factor(results$merged_clusters, levels = c("NaiveT_1","NaiveT_2", "NaiveT_3","MemoryT_1","MemoryT_2",
                                                                    "MemoryT_Polarized_1","MemoryT_Polarized_2","Treg_proliferating",
                                                                    "CytotoxicT","NK","Naive_B","Memory_B","Plasma","CD14_Mono","cDC","pDC"))

umapcords<-data.frame(results@reductions$umap@cell.embeddings)
umapcords$HIV<-results$HIV_type
BottleRocket2 = c("#FAD510", "#CB2314", "#273046", "#354823", "#1E1E1E")
colmap<-c("HIV not detected"="grey62", "HIV RNA+ and HIV DNA+"="#CB2314","HIV DNA+"="#354823","HIV RNA+" = "#FAD510")

ggplot(umapcords, aes(x=UMAP_1, y=UMAP_2, color="HIV not detected"))+geom_point()+
  geom_point(data=umapcords[umapcords$HIV!="HIV not detected",], aes(x=UMAP_1, y=UMAP_2, color=HIV),size=2)+
  scale_color_manual(values = colmap)+theme_classic()

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/A.pdf",width = 16, height = 9)
ggplot(umapcords, aes(x=UMAP_1, y=UMAP_2, color="HIV not detected"))+geom_point()+
  geom_point(data=umapcords[umapcords$HIV!="HIV not detected",], aes(x=UMAP_1, y=UMAP_2, color=HIV),size=2)+
  scale_color_manual(values = colmap)+theme_classic()
dev.off()
## png 
##   2
meta<-results@meta.data
meta<-group_by(meta, HIV_type, merged_clusters, .drop=FALSE)%>%summarise(n=n())%>%mutate(freq=n/sum(n))
## `summarise()` has grouped output by 'HIV_type'. You can override using the
## `.groups` argument.
ggplot(meta, aes(x=merged_clusters, y=freq, fill=HIV_type), )+geom_bar(stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/B.pdf",width = 16, height = 9)
ggplot(meta, aes(x=merged_clusters, y=freq, fill=HIV_type), )+geom_bar(width=0.7, stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))
dev.off()
## png 
##   2
#have to simulate because its too resource intensive
#no difference in proportions for clusters across the three groups 
fisher.test(cbind(meta$n[meta$HIV_type=="HIV not detected"],
                  meta$n[meta$HIV_type=="HIV RNA+ and HIV DNA+"],
                  meta$n[meta$HIV_type=="HIV DNA+"],
                  meta$n[meta$HIV_type=="HIV RNA+"]), simulate.p.value = TRUE, B = 1e6)
## 
##  Fisher's Exact Test for Count Data with simulated p-value (based on
##  1e+06 replicates)
## 
## data:  cbind(meta$n[meta$HIV_type == "HIV not detected"], meta$n[meta$HIV_type == "HIV RNA+ and HIV DNA+"], meta$n[meta$HIV_type == "HIV DNA+"], meta$n[meta$HIV_type == "HIV RNA+"])
## p-value = 0.1222
## alternative hypothesis: two.sided
# its very close with everything pooled but still not sig 
fisher.test(rbind(meta$n[meta$HIV_type=="HIV not detected"],
                  colSums(rbind(meta$n[meta$HIV_type=="HIV RNA+ and HIV DNA+"],
                  meta$n[meta$HIV_type=="HIV DNA+"],
                  meta$n[meta$HIV_type=="HIV RNA+"]))), simulate.p.value = TRUE, B = 1e6)
## 
##  Fisher's Exact Test for Count Data with simulated p-value (based on
##  1e+06 replicates)
## 
## data:  rbind(meta$n[meta$HIV_type == "HIV not detected"], colSums(rbind(meta$n[meta$HIV_type == "HIV RNA+ and HIV DNA+"], meta$n[meta$HIV_type == "HIV DNA+"], meta$n[meta$HIV_type == "HIV RNA+"])))
## p-value = 0.05925
## alternative hypothesis: two.sided
HIV_counts<-rbind(meta$n[meta$HIV_type=="HIV not detected"],
             colSums(rbind(meta$n[meta$HIV_type=="HIV RNA+ and HIV DNA+"],
                           meta$n[meta$HIV_type=="HIV DNA+"],
                           meta$n[meta$HIV_type=="HIV RNA+"])))
#not sig even if we drop clusters that dont have any HIV 
fisher.test(HIV_counts[,HIV_counts[2,]!=0], simulate.p.value = TRUE, B = 1e6)
## 
##  Fisher's Exact Test for Count Data with simulated p-value (based on
##  1e+06 replicates)
## 
## data:  HIV_counts[, HIV_counts[2, ] != 0]
## p-value = 0.1455
## alternative hypothesis: two.sided

HIV infected cells treatment conditions (Fig C - D)

results$HIV_bool<-case_when(results$HIV_reads_ATAC>1 | results$HIV_reads_RNA>1 ~TRUE, T ~ FALSE)
results$HIV_bool<-factor(results$HIV_bool, levels = c(TRUE, FALSE))
Timepoint<-table(results$HIV_bool, results$Timepoint)
colnames(Timepoint)<-c("0 Months", "3 Months")
rownames(Timepoint)<-c("HIV_positive","HIV_negative")
to_plot<-data.frame(Timepoint/rowSums(Timepoint))
colnames(to_plot)<-c("HIV","Time","Prop")
colmap<-c("HIV_negative"="grey62", "HIV_positive"="#CB2314")
ggplot(to_plot, aes(x=Time, y=Prop, fill=HIV))+geom_bar(stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/C.pdf",width = 16, height = 9)
ggplot(to_plot, aes(x=Time, y=Prop, fill=HIV))+geom_bar(stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))
dev.off()
## png 
##   2
#no significant difference
chisq.test(Timepoint)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  Timepoint
## X-squared = 1.1475, df = 1, p-value = 0.2841
Treatment<-table(results$HIV_bool, results$Treatment)

rownames(Treatment)<-c("HIV_positive","HIV_negative")
to_plot<-data.frame(Treatment/rowSums(Treatment))
colnames(to_plot)<-c("HIV","Treatment","Prop")
colmap<-c("HIV_negative"="grey62", "HIV_positive"="#CB2314")
ggplot(to_plot, aes(x=Treatment, y=Prop, fill=HIV))+geom_bar(stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/D.pdf",width = 16, height = 9)
ggplot(to_plot, aes(x=Treatment, y=Prop, fill=HIV))+geom_bar(stat="identity", position=position_dodge(width = 1))+scale_fill_manual(values = colmap)+theme_classic()+xlab("Cluster")+ylab("proportion of cells")+theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3))
dev.off()
## png 
##   2
#significantly different across all 
chisq.test(Treatment)
## 
##  Pearson's Chi-squared test
## 
## data:  Treatment
## X-squared = 6.6932, df = 2, p-value = 0.0352
#narrowed down to just Naltrexone 
chisq.test(table(results$Treatment=="Naltrexone", results$HIV_bool))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(results$Treatment == "Naltrexone", results$HIV_bool)
## X-squared = 4.9462, df = 1, p-value = 0.02615

HIV infected cells differential expression (RNA, Fig E - H)

#subset to just within T cell annotations
DefaultAssay(results)<-"RNA"
results$keep<-!is.na(results$CD4anno)
results.sub<-subset(results, keep==TRUE)
Idents(results.sub)<-results.sub$HIV_reads_ATAC>1
marks_ATAC.sub<-FindMarkers(results.sub, TRUE, FALSE)
Idents(results.sub)<-results.sub$HIV_reads_RNA>1
marks_RNA.sub<-FindMarkers(results.sub, TRUE, FALSE)
Idents(results.sub)<-(results.sub$HIV_reads_RNA>1)|(results.sub$HIV_reads_ATAC>1)
marks_either.sub<-FindMarkers(results.sub, TRUE, FALSE)

DT::datatable(rownames=TRUE, filter="top", class='cell-border stripe', extensions = 'Buttons', options = list(dom = 'Bfrtip', buttons = c('copy', 'csv', 'excel', 'pdf', 'print')), data=marks_ATAC.sub, caption = htmltools::tags$caption( style = 'caption-side: top; text-align: center; color:black;  font-size:200% ;','HIV DNA+ cells vs all T cells'))
DT::datatable(rownames=TRUE, filter="top", class='cell-border stripe', extensions = 'Buttons', options = list(dom = 'Bfrtip', buttons = c('copy', 'csv', 'excel', 'pdf', 'print')), data=marks_RNA.sub, caption = htmltools::tags$caption( style = 'caption-side: top; text-align: center; color:black;  font-size:200% ;','HIV RNA+ cells vs all T cells'))
DT::datatable(rownames=TRUE, filter="top", class='cell-border stripe', extensions = 'Buttons', options = list(dom = 'Bfrtip', buttons = c('copy', 'csv', 'excel', 'pdf', 'print')), data=marks_either.sub, caption = htmltools::tags$caption( style = 'caption-side: top; text-align: center; color:black;  font-size:200% ;','HIV DNA+ or HIV RNA+ cells vs all T cells'))
toPlot<-c("PTPN13","TAF5L", "ZNF195","TRAV8-2")
Idents(results.sub)<-factor(Idents(results.sub), levels = c("TRUE","FALSE"))
VlnPlot(results.sub, features = toPlot, pt.size = 0, ncol = 4)

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/E_H.pdf",width = 16, height = 9)
VlnPlot(results.sub, features = toPlot, pt.size = 0, ncol = 4)
dev.off()
## png 
##   2

HIV infected cells differential expression (GSEA) FIG I-K

m_df_H<- msigdbr(species = "Homo sapiens", category = "H")
m_df_H<- rbind(msigdbr(species = "Homo sapiens", category = "C2"), m_df_H)
m_df_H<- rbind(msigdbr(species = "Homo sapiens", category = "C7"), m_df_H)
fgsea_sets<- m_df_H %>% split(x = .$gene_symbol, f = .$gs_name)

DefaultAssay(results)<-"RNA"
results.sub<-subset(results, keep==TRUE)
Idents(results.sub)<-(results.sub$HIV_reads_RNA>1)|(results.sub$HIV_reads_ATAC>1)
#had to use 0.1 to ensure that we filter genes expressed in a single HIV infected cell and no/few other cells, which have insane p values but are functionally uninformative. While in theory GSEA is robust to this, in this case its not going to be reliable. 
marks<-FindMarkers(results.sub, TRUE, FALSE, logfc.threshold = -Inf, min.pct = 0.1, min.diff.pct = -Inf)

GSEAres<-GSEA(marks, genesets = fgsea_sets)
## Warning in fgseaMultilevel(pathways = pathways, stats = stats, minSize =
## minSize, : There were 18 pathways for which P-values were not calculated
## properly due to unbalanced (positive and negative) gene-level statistic values.
## For such pathways pval, padj, NES, log2err are set to NA. You can try to
## increase the value of the argument nPermSimple (for example set it nPermSimple
## = 10000)
## Warning in fgseaMultilevel(pathways = pathways, stats = stats, minSize =
## minSize, : For some of the pathways the P-values were likely overestimated. For
## such pathways log2err is set to NA.
GSEAres<-GSEATable(GSEAres, gmt = fgsea_sets, name = "HIVinfected" )
## [1] "start ranking"
## [1] "done ranking"
GSEAres<-subset(GSEAres,padj<0.05 & NES>0)

DT::datatable(rownames=TRUE, filter="top", class='cell-border stripe', extensions = 'Buttons', options = list(dom = 'Bfrtip', buttons = c('copy', 'csv', 'excel', 'pdf', 'print')), data=GSEAres, caption = htmltools::tags$caption( style = 'caption-side: top; text-align: center; color:black;  font-size:200% ;','HIV DNA+ or HIV RNA+ cells vs all T cells'))
toplot<-c("GSE11057_NAIVE_VS_EFF_MEMORY_CD4_TCELL_DN","ZHENG_BOUND_BY_FOXP3","GSE14699_DELETIONAL_TOLERANCE_VS_ACTIVATED_CD8_TCELL_UP")

for(i in toplot){
  print(GSEAEnrichmentPlotComparison(PathwayName = i, GSEACompOut = GSEAres, returnplot = "BOTH"))
}

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/I_K.pdf",width = 16, height = 9)
for(i in toplot){
  print(GSEAEnrichmentPlotComparison(PathwayName = i, GSEACompOut = GSEAres, returnplot = "BOTH"))
}
dev.off()
## png 
##   2
#table of HIV+ by cluster
meta<-results@meta.data
meta<-group_by(meta, HIV_type, merged_clusters, .drop=FALSE)%>%summarise(n=n())%>%filter(HIV_type!="HIV not detected")
## `summarise()` has grouped output by 'HIV_type'. You can override using the
## `.groups` argument.
write.table(meta, "~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/table_1.tsv",sep="\t", row.names = FALSE, quote = FALSE )
#table of HIV+ by treatment
meta<-results@meta.data
meta<-group_by(meta, HIV_type, Treatment, .drop=FALSE)%>%summarise(n=n())%>%filter(HIV_type!="HIV not detected")
## `summarise()` has grouped output by 'HIV_type'. You can override using the
## `.groups` argument.
write.table(meta, "~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/table_2.tsv",sep="\t", row.names = FALSE, quote = FALSE )

#table of HIV+ by timepoint 
meta<-results@meta.data
meta<-group_by(meta, HIV_type, Timepoint, .drop=FALSE)%>%summarise(n=n())%>%filter(HIV_type!="HIV not detected")
## `summarise()` has grouped output by 'HIV_type'. You can override using the
## `.groups` argument.
write.table(meta, "~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/table_3.tsv",sep="\t", row.names = FALSE, quote = FALSE )

#hiv reads plot
results$normHIV<-log((results$HIV_UMI_RNA/results$nCount_RNA)*10000 + 1)
results$TP_Treat<-paste(results$Timepoint, results$Treatment)
results$TP_Treat<-factor(results$TP_Treat, levels = c("0 Methadone","3 Methadone", "0 Bup.Nalo",
                                                      "3 Bup.Nalo",   "0 Naltrexone",      "3 Naltrexone"))
Idents(results)<-!is.na(results$HIV_UMI_RNA)
VlnPlot(results, "normHIV",idents = TRUE, group.by = "TP_Treat" )

pdf("~/gibbs/DOGMAMORPH/Ranalysis/Scripts/Figure Notebooks/rawFigs/fig2/HIV_umi_extra.pdf",width = 16, height = 9)
VlnPlot(results, "normHIV",idents = TRUE, group.by = "TP_Treat" )

dev.off()
## png 
##   2
devtools::session_info()
## Warning in system("timedatectl", intern = TRUE): running command 'timedatectl'
## had status 1
## - Session info ---------------------------------------------------------------
##  setting  value
##  version  R version 4.2.0 (2022-04-22)
##  os       Red Hat Enterprise Linux 8.8 (Ootpa)
##  system   x86_64, linux-gnu
##  ui       X11
##  language (EN)
##  collate  C
##  ctype    C
##  tz       Etc/UTC
##  date     2023-12-12
##  pandoc   3.1.1 @ /usr/lib/rstudio-server/bin/quarto/bin/tools/ (via rmarkdown)
## 
## - Packages -------------------------------------------------------------------
##  package          * version   date (UTC) lib source
##  abind              1.4-5     2016-07-21 [2] CRAN (R 4.2.0)
##  babelgene          22.9      2022-09-29 [1] CRAN (R 4.2.0)
##  backports          1.4.1     2021-12-13 [2] CRAN (R 4.2.0)
##  beeswarm           0.4.0     2021-06-01 [2] CRAN (R 4.2.0)
##  BiocGenerics       0.44.0    2022-11-01 [1] Bioconductor
##  BiocParallel       1.32.6    2023-03-17 [1] Bioconductor
##  Biostrings         2.66.0    2022-11-01 [1] Bioconductor
##  bitops             1.0-7     2021-04-24 [2] CRAN (R 4.2.0)
##  broom              1.0.4     2023-03-11 [1] CRAN (R 4.2.0)
##  bslib              0.4.2     2022-12-16 [1] CRAN (R 4.2.0)
##  cachem             1.0.8     2023-05-01 [1] CRAN (R 4.2.0)
##  callr              3.7.3     2022-11-02 [1] CRAN (R 4.2.0)
##  car                3.1-2     2023-03-30 [1] CRAN (R 4.2.0)
##  carData            3.0-5     2022-01-06 [2] CRAN (R 4.2.0)
##  cli                3.6.1     2023-03-23 [1] CRAN (R 4.2.0)
##  cluster            2.1.4     2022-08-22 [2] CRAN (R 4.2.0)
##  codetools          0.2-19    2023-02-01 [2] CRAN (R 4.2.0)
##  colorspace         2.1-0     2023-01-23 [2] CRAN (R 4.2.0)
##  cowplot            1.1.1     2020-12-30 [2] CRAN (R 4.2.0)
##  crayon             1.5.2     2022-09-29 [2] CRAN (R 4.2.0)
##  crosstalk          1.2.0     2021-11-04 [2] CRAN (R 4.2.0)
##  data.table         1.14.8    2023-02-17 [2] CRAN (R 4.2.0)
##  DBI                1.1.3     2022-06-18 [2] CRAN (R 4.2.0)
##  deldir             1.0-6     2021-10-23 [2] CRAN (R 4.2.0)
##  devtools           2.4.5     2022-10-11 [1] CRAN (R 4.2.0)
##  digest             0.6.31    2022-12-11 [2] CRAN (R 4.2.0)
##  dplyr            * 1.1.2     2023-04-20 [1] CRAN (R 4.2.0)
##  DT                 0.28      2023-05-18 [1] CRAN (R 4.2.0)
##  ellipsis           0.3.2     2021-04-29 [2] CRAN (R 4.2.0)
##  evaluate           0.20      2023-01-17 [2] CRAN (R 4.2.0)
##  fansi              1.0.4     2023-01-22 [2] CRAN (R 4.2.0)
##  farver             2.1.1     2022-07-06 [2] CRAN (R 4.2.0)
##  fastmap            1.1.1     2023-02-24 [1] CRAN (R 4.2.0)
##  fastmatch          1.1-3     2021-07-23 [2] CRAN (R 4.2.0)
##  fgsea            * 1.24.0    2022-11-01 [1] Bioconductor
##  fitdistrplus       1.1-8     2022-03-10 [2] CRAN (R 4.2.0)
##  fs                 1.6.1     2023-02-06 [2] CRAN (R 4.2.0)
##  future             1.32.0    2023-03-07 [1] CRAN (R 4.2.0)
##  future.apply       1.10.0    2022-11-05 [1] CRAN (R 4.2.0)
##  generics           0.1.3     2022-07-05 [2] CRAN (R 4.2.0)
##  GenomeInfoDb       1.34.9    2023-02-02 [1] Bioconductor
##  GenomeInfoDbData   1.2.9     2023-03-17 [1] Bioconductor
##  GenomicRanges      1.50.2    2022-12-16 [1] Bioconductor
##  ggbeeswarm         0.7.2     2023-04-29 [1] CRAN (R 4.2.0)
##  ggplot2          * 3.4.2     2023-04-03 [1] CRAN (R 4.2.0)
##  ggpubr           * 0.6.0     2023-02-10 [1] CRAN (R 4.2.0)
##  ggrastr            1.0.1     2021-12-08 [1] CRAN (R 4.2.0)
##  ggrepel          * 0.9.3     2023-02-03 [1] CRAN (R 4.2.0)
##  ggridges           0.5.4     2022-09-26 [1] CRAN (R 4.2.0)
##  ggsignif           0.6.4     2022-10-13 [1] CRAN (R 4.2.0)
##  globals            0.16.2    2022-11-21 [1] CRAN (R 4.2.0)
##  glue               1.6.2     2022-02-24 [2] CRAN (R 4.2.0)
##  goftest            1.2-3     2021-10-07 [2] CRAN (R 4.2.0)
##  gridExtra        * 2.3       2017-09-09 [2] CRAN (R 4.2.0)
##  gtable             0.3.3     2023-03-21 [1] CRAN (R 4.2.0)
##  highr              0.10      2022-12-22 [1] CRAN (R 4.2.0)
##  htmltools          0.5.5     2023-03-23 [1] CRAN (R 4.2.0)
##  htmlwidgets        1.6.2     2023-03-17 [1] CRAN (R 4.2.0)
##  httpuv             1.6.9     2023-02-14 [1] CRAN (R 4.2.0)
##  httr               1.4.5     2023-02-24 [1] CRAN (R 4.2.0)
##  ica                1.0-3     2022-07-08 [2] CRAN (R 4.2.0)
##  igraph             1.4.2     2023-04-07 [1] CRAN (R 4.2.0)
##  IRanges            2.32.0    2022-11-01 [1] Bioconductor
##  irlba              2.3.5.1   2022-10-03 [1] CRAN (R 4.2.0)
##  jquerylib          0.1.4     2021-04-26 [2] CRAN (R 4.2.0)
##  jsonlite           1.8.4     2022-12-06 [2] CRAN (R 4.2.0)
##  KernSmooth         2.23-20   2021-05-03 [2] CRAN (R 4.2.0)
##  knitr              1.42      2023-01-25 [1] CRAN (R 4.2.0)
##  labeling           0.4.2     2020-10-20 [2] CRAN (R 4.2.0)
##  later              1.3.0     2021-08-18 [2] CRAN (R 4.2.0)
##  lattice            0.21-8    2023-04-05 [1] CRAN (R 4.2.0)
##  lazyeval           0.2.2     2019-03-15 [2] CRAN (R 4.2.0)
##  leiden             0.4.3     2022-09-10 [1] CRAN (R 4.2.0)
##  lifecycle          1.0.3     2022-10-07 [1] CRAN (R 4.2.0)
##  limma              3.54.2    2023-02-28 [1] Bioconductor
##  listenv            0.9.0     2022-12-16 [2] CRAN (R 4.2.0)
##  lmtest             0.9-40    2022-03-21 [2] CRAN (R 4.2.0)
##  magrittr           2.0.3     2022-03-30 [2] CRAN (R 4.2.0)
##  MASS               7.3-59    2023-04-21 [1] CRAN (R 4.2.0)
##  Matrix             1.5-4     2023-04-04 [1] CRAN (R 4.2.0)
##  matrixStats        0.63.0    2022-11-18 [2] CRAN (R 4.2.0)
##  memoise            2.0.1     2021-11-26 [2] CRAN (R 4.2.0)
##  mime               0.12      2021-09-28 [2] CRAN (R 4.2.0)
##  miniUI             0.1.1.1   2018-05-18 [2] CRAN (R 4.2.0)
##  msigdbr          * 7.5.1     2022-03-30 [1] CRAN (R 4.2.0)
##  munsell            0.5.0     2018-06-12 [2] CRAN (R 4.2.0)
##  nlme               3.1-162   2023-01-31 [1] CRAN (R 4.2.0)
##  parallelly         1.35.0    2023-03-23 [1] CRAN (R 4.2.0)
##  patchwork          1.1.2     2022-08-19 [1] CRAN (R 4.2.0)
##  pbapply            1.7-0     2023-01-13 [1] CRAN (R 4.2.0)
##  pillar             1.9.0     2023-03-22 [1] CRAN (R 4.2.0)
##  pkgbuild           1.4.0     2022-11-27 [1] CRAN (R 4.2.0)
##  pkgconfig          2.0.3     2019-09-22 [2] CRAN (R 4.2.0)
##  pkgload            1.3.2     2022-11-16 [1] CRAN (R 4.2.0)
##  plotly             4.10.1    2022-11-07 [1] CRAN (R 4.2.0)
##  plyr               1.8.8     2022-11-11 [1] CRAN (R 4.2.0)
##  png                0.1-8     2022-11-29 [1] CRAN (R 4.2.0)
##  polyclip           1.10-4    2022-10-20 [1] CRAN (R 4.2.0)
##  prettyunits        1.1.1     2020-01-24 [2] CRAN (R 4.2.0)
##  processx           3.8.1     2023-04-18 [1] CRAN (R 4.2.0)
##  profvis            0.3.8     2023-05-02 [1] CRAN (R 4.2.0)
##  progressr          0.13.0    2023-01-10 [1] CRAN (R 4.2.0)
##  promises           1.2.0.1   2021-02-11 [2] CRAN (R 4.2.0)
##  ps                 1.7.5     2023-04-18 [1] CRAN (R 4.2.0)
##  purrr              1.0.1     2023-01-10 [1] CRAN (R 4.2.0)
##  R6                 2.5.1     2021-08-19 [2] CRAN (R 4.2.0)
##  RANN               2.6.1     2019-01-08 [2] CRAN (R 4.2.0)
##  RColorBrewer       1.1-3     2022-04-03 [2] CRAN (R 4.2.0)
##  Rcpp               1.0.10    2023-01-22 [1] CRAN (R 4.2.0)
##  RcppAnnoy          0.0.20    2022-10-27 [1] CRAN (R 4.2.0)
##  RcppRoll           0.3.0     2018-06-05 [2] CRAN (R 4.2.0)
##  RCurl              1.98-1.12 2023-03-27 [1] CRAN (R 4.2.0)
##  remotes            2.4.2     2021-11-30 [2] CRAN (R 4.2.0)
##  reshape2         * 1.4.4     2020-04-09 [2] CRAN (R 4.2.0)
##  reticulate         1.28      2023-01-27 [1] CRAN (R 4.2.0)
##  rlang              1.1.1     2023-04-28 [1] CRAN (R 4.2.0)
##  rmarkdown          2.22      2023-06-01 [1] CRAN (R 4.2.0)
##  ROCR               1.0-11    2020-05-02 [2] CRAN (R 4.2.0)
##  Rsamtools          2.14.0    2022-11-01 [1] Bioconductor
##  rstatix            0.7.2     2023-02-01 [1] CRAN (R 4.2.0)
##  rstudioapi         0.14      2022-08-22 [1] CRAN (R 4.2.0)
##  Rtsne              0.16      2022-04-17 [2] CRAN (R 4.2.0)
##  S4Vectors          0.36.2    2023-02-26 [1] Bioconductor
##  sass               0.4.5     2023-01-24 [1] CRAN (R 4.2.0)
##  scales           * 1.2.1     2022-08-20 [1] CRAN (R 4.2.0)
##  scattermore        0.8       2022-02-14 [1] CRAN (R 4.2.0)
##  sctransform        0.3.5     2022-09-21 [1] CRAN (R 4.2.0)
##  sessioninfo        1.2.2     2021-12-06 [2] CRAN (R 4.2.0)
##  Seurat           * 4.3.0     2022-11-18 [1] CRAN (R 4.2.0)
##  SeuratObject     * 4.1.3     2022-11-07 [1] CRAN (R 4.2.0)
##  shiny              1.7.4     2022-12-15 [1] CRAN (R 4.2.0)
##  Signac           * 1.9.0     2022-12-08 [1] CRAN (R 4.2.0)
##  sp                 1.6-0     2023-01-19 [1] CRAN (R 4.2.0)
##  spatstat.data      3.0-1     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.explore   3.1-0     2023-03-14 [1] CRAN (R 4.2.0)
##  spatstat.geom      3.1-0     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.random    3.1-4     2023-03-13 [1] CRAN (R 4.2.0)
##  spatstat.sparse    3.0-1     2023-03-12 [1] CRAN (R 4.2.0)
##  spatstat.utils     3.0-2     2023-03-11 [1] CRAN (R 4.2.0)
##  stringi            1.7.12    2023-01-11 [1] CRAN (R 4.2.0)
##  stringr            1.5.0     2022-12-02 [1] CRAN (R 4.2.0)
##  survival           3.5-5     2023-03-12 [1] CRAN (R 4.2.0)
##  tensor             1.5       2012-05-05 [2] CRAN (R 4.2.0)
##  tibble           * 3.2.1     2023-03-20 [1] CRAN (R 4.2.0)
##  tidyr            * 1.3.0     2023-01-24 [1] CRAN (R 4.2.0)
##  tidyselect         1.2.0     2022-10-10 [1] CRAN (R 4.2.0)
##  urlchecker         1.0.1     2021-11-30 [1] CRAN (R 4.2.0)
##  usethis            2.1.6     2022-05-25 [1] CRAN (R 4.2.0)
##  utf8               1.2.3     2023-01-31 [1] CRAN (R 4.2.0)
##  uwot               0.1.14    2022-08-22 [1] CRAN (R 4.2.0)
##  vctrs              0.6.2     2023-04-19 [1] CRAN (R 4.2.0)
##  vipor              0.4.5     2017-03-22 [2] CRAN (R 4.2.0)
##  viridisLite        0.4.2     2023-05-02 [1] CRAN (R 4.2.0)
##  withr              2.5.0     2022-03-03 [2] CRAN (R 4.2.0)
##  xfun               0.39      2023-04-20 [1] CRAN (R 4.2.0)
##  xtable             1.8-4     2019-04-21 [2] CRAN (R 4.2.0)
##  XVector            0.38.0    2022-11-01 [1] Bioconductor
##  yaml               2.3.7     2023-01-23 [1] CRAN (R 4.2.0)
##  zlibbioc           1.44.0    2022-11-01 [1] Bioconductor
##  zoo                1.8-12    2023-04-13 [1] CRAN (R 4.2.0)
## 
##  [1] /gpfs/gibbs/project/ya-chi_ho/jac369/R/4.2
##  [2] /vast/palmer/apps/avx2/software/R/4.2.0-foss-2020b/lib64/R/library
## 
## ------------------------------------------------------------------------------